Automated voice response systems, particularly those employing speech recognition, typically receive a voice input from a user and then construct a recognition results list of possible matches to the user input. Frequently, the system simply presents the matches to the user in order, seeking confirmation that a match is the input intended by the user. For example, a system may receive an input such as “John Smith” from the user, compare the input to a list of existing names in the directory to create a list of possible matches including the names “John Smith,” “Jane Smith,” “Jake Smith” and “Johann Smithers,” and simply present these names to the user in order. Sometimes, given the current state of recognition technology, none of the presented names will match what the user intended, and the system will ask the user to repeat the voice input. The system will then create a new list of possible matches for presentation to the user.
If no account is taken of the user identity and of past recognition results, it is entirely possible that some of the names in the list constructed as a result of the repeated utterance will match some of the names that were previously presented and rejected. Presentation of names that were just rejected wastes the user's time and can result in considerable user dissatisfaction and frustration. In addition, even an accurate selection may be incomplete. For example, identifying “John Smith” may not identify whether the user wishes to call his landline number or his mobile number, so that once “John Smith” has been identified as the desired result, the user may still need to be presented with the choice of which specific number to call.
A system employing voice recognition may include a number of modules or applications that use voice recognition results, and each such module or application may use recognition results in different ways. For example, a system may provide directory lookup and voice dialing for persons inside an organization, may provide bank account information services for persons who may call from outside the organization and may provide general educational information for persons who may call from outside the organization. Each module may have its own configuration parameters and may require different treatment of recognition results in order to achieve the best and most efficient matching. In addition, some modules may have information available that can be taken advantage of to improve results, while others may not. For example, a module that provides services to users within an organization may have a user profile available for each user, while such information may not be available to a module that provides services to external users whose identity is not known in advance.
There exists, therefore, a need for systems and techniques to process recognition results to improve recognition efficiency and accuracy for various modules, with such systems being adapted to receive and interpret differing information furnished or used by the different modules.